import { WorkflowStatus } from './workflow-status';

export class parame {
    id: number; //dot id
    typeId:number; //type
    status: WorkflowStatus; // current status and type of enum, only use WorkflowEvents
    lineClass:string; //process line use className for show this line color 
    processName: string; //current dot name
}
export class ProcessInfo {
    data: parame[]//resource key, if not existent, display directly
    processEvgs: Function[]; //if focus on, it will happen
    callbackEvgs: CallbackEvent;//Function[];
    // constructor(data: parame[], processEvgs: Function[], callbackEvgs: Function[]) {  }
};

export class CallbackEvent{
    ClickSucCallback:Function;
    ClickFailCallback:Function;
    DblclickCallback:Function;
    MouseOverCallback:Function;
    MouseenterCallback:Function;
    MousemoveCallback:Function;
    MousedownCallback:Function;
    MouseupCallback:Function;
    MouseleaveCallback:Function;
    MouseoutCallback:Function;
}

// constructor(customEvent: Function) {
//     // this.statusChangedEvent = customEvent;
// }
// export class WorkflowEvents{
//    static StatusChangedEvent():void{}

//    static FocusEvent():void{}
// }

// interface IEvent {
//     Initial():Function;
// }


// export class StatusChangedEvent implements Function {
//     // curStatus:number;
//     // Initial():Function{
//     //     return;
//     // }
//     // apply:any;
//     // call:any;
//     // bind:any;
//     // prototype:any;
//     // length:any;
//     // arguments:any;
// }

// export class FocusEvent implements IEvent {
//     Initial():void {

//     }
// }